<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>S110_nRF51822/Include/ble/softdevice/ble_gatts.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css" />
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="alias.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="alias.js"></script>

<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>


<script type="text/javascript">
  jQuery(document).ready(function () {
    if(gref){ // Number all _img and _table classes
      gref();
    }
  });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->

<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">nRF51822 BLE SDK
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('ble__gatts_8h.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">S110_nRF51822/Include/ble/softdevice/ble_gatts.h</div>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * The information contained herein is confidential property of Nordic Semiconductor. The use,</span>
<a name="l00004"></a>00004 <span class="comment"> * copying, transfer or disclosure of such information is prohibited except by express written</span>
<a name="l00005"></a>00005 <span class="comment"> * agreement with Nordic Semiconductor.</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> */</span>
<a name="l00014"></a>00014 <span class="preprocessor">#ifndef BLE_GATTS_H__</span>
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define BLE_GATTS_H__</span>
<a name="l00016"></a>00016 <span class="preprocessor"></span>
<a name="l00017"></a>00017 <span class="preprocessor">#include &quot;ble_types.h&quot;</span>
<a name="l00018"></a>00018 <span class="preprocessor">#include &quot;ble_ranges.h&quot;</span>
<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;ble_l2cap.h&quot;</span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &quot;ble_gap.h&quot;</span>
<a name="l00021"></a>00021 
<a name="l00023"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ga69b579663f889c0ce87a8931b51048b4">00023</a> <span class="preprocessor">#define GATT_RX_MTU 23</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span>
<a name="l00028"></a>00028 <span class="keyword">enum</span>
<a name="l00029"></a>00029 {
<a name="l00030"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaf1fd96039a3e8897746c941ba27c0790">00030</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaf1fd96039a3e8897746c941ba27c0790">SVC_BLE_GATTS_DB_LOAD</a>  = BLE_GATTS_SVC_BASE,    
<a name="l00031"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea78cd57d15505ff6309b45a9ac6fdd055">00031</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea78cd57d15505ff6309b45a9ac6fdd055">SVC_BLE_GATTS_SERVICE_ADD</a>,                      
<a name="l00032"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea4dc7cf81a0c1475646ced4d7b31c51eb">00032</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea4dc7cf81a0c1475646ced4d7b31c51eb">SVC_BLE_GATTS_INCLUDE_ADD</a>,                      
<a name="l00033"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea8be599bb11323fbd1fd59612b61dded8">00033</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea8be599bb11323fbd1fd59612b61dded8">SVC_BLE_GATTS_CHARACTERISTIC_ADD</a>,               
<a name="l00034"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea1785845a5e8428082c576883aa872cd9">00034</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea1785845a5e8428082c576883aa872cd9">SVC_BLE_GATTS_DESCRIPTOR_ADD</a>,                   
<a name="l00035"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea42be96066fca377cf4ad929ec4125a58">00035</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea42be96066fca377cf4ad929ec4125a58">SVC_BLE_GATTS_MD_SET</a>,                           
<a name="l00036"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaba69cc87d4420099fe195c2f9bf156e8">00036</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaba69cc87d4420099fe195c2f9bf156e8">SVC_BLE_GATTS_MD_GET</a>,                           
<a name="l00037"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea5ccb34a3ff55e799cc1706af14be204e">00037</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea5ccb34a3ff55e799cc1706af14be204e">SVC_BLE_GATTS_VALUE_SET</a>,                        
<a name="l00038"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea70c9793acebfb7089f8df93a592fbf5d">00038</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea70c9793acebfb7089f8df93a592fbf5d">SVC_BLE_GATTS_VALUE_GET</a>,                        
<a name="l00039"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea0f836dda706fe9ef94c5501ffa441d77">00039</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea0f836dda706fe9ef94c5501ffa441d77">SVC_BLE_GATTS_HVX</a>,                              
<a name="l00040"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceab9669d199e45661740f25ac9711c4608">00040</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceab9669d199e45661740f25ac9711c4608">SVC_BLE_GATTS_RW_OP_REPLY</a>,                      
<a name="l00041"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaafad37ccc8a8e65c9d138c9444e0496e">00041</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaafad37ccc8a8e65c9d138c9444e0496e">SVC_BLE_GATTS_SYS_ATTR_SET</a>,                     
<a name="l00042"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea489e505d006457b2a56f8777b5a03d31">00042</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea489e505d006457b2a56f8777b5a03d31">SVC_BLE_GATTS_SYS_ATTR_GET</a>,                     
<a name="l00043"></a>00043 };
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 
<a name="l00048"></a>00048 <span class="preprocessor">#define BLE_ERROR_GATTS_INVALID_ATTR_TYPE   (NRF_GATTS_ERR_BASE + 0x000)</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#define BLE_ERROR_GATTS_SYS_ATTR_MISSING    (NRF_GATTS_ERR_BASE + 0x001)</span>
<a name="l00050"></a>00050 <span class="preprocessor"></span>
<a name="l00054"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#gaa16a29908fc63343706f56913be51ec1">00054</a> <span class="preprocessor">#define BLE_GATTS_HANDLE_INVALID            0x0000</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span>
<a name="l00056"></a>00056 
<a name="l00059"></a><a class="code" href="group___b_l_e___g_a_t_t_s___s_v_c___t_y_p_e_s.html#gaad6d21518008d20eda14875ed588e045">00059</a> <span class="preprocessor">#define BLE_GATTS_SVC_TYPE_INVALID          0x00  </span>
<a name="l00060"></a><a class="code" href="group___b_l_e___g_a_t_t_s___s_v_c___t_y_p_e_s.html#ga713ed30865fa70c89587ba981f114a91">00060</a> <span class="preprocessor">#define BLE_GATTS_SVC_TYPE_PRIMARY          0x01  </span>
<a name="l00061"></a><a class="code" href="group___b_l_e___g_a_t_t_s___s_v_c___t_y_p_e_s.html#gaff14d871a659535dce360ae8324e3e6e">00061</a> <span class="preprocessor">#define BLE_GATTS_SVC_TYPE_SECONDARY        0x02  </span>
<a name="l00067"></a><a class="code" href="group___b_l_e___g_a_t_t_s___a_t_t_r___t_y_p_e_s.html#ga24097ed5a56be45fc4d051584546e458">00067</a> <span class="preprocessor">#define BLE_GATTS_ATTR_TYPE_INVALID         0x00  </span>
<a name="l00068"></a><a class="code" href="group___b_l_e___g_a_t_t_s___a_t_t_r___t_y_p_e_s.html#gab36cb896774d695b335744430c61c552">00068</a> <span class="preprocessor">#define BLE_GATTS_ATTR_TYPE_PRIM_SVC_DECL   0x01  </span>
<a name="l00069"></a><a class="code" href="group___b_l_e___g_a_t_t_s___a_t_t_r___t_y_p_e_s.html#ga796489fc0b0451dffa04d35eb0f4eb8c">00069</a> <span class="preprocessor">#define BLE_GATTS_ATTR_TYPE_SEC_SVC_DECL    0x02  </span>
<a name="l00070"></a><a class="code" href="group___b_l_e___g_a_t_t_s___a_t_t_r___t_y_p_e_s.html#gadf7b95716018edd34e87df7e4163bc74">00070</a> <span class="preprocessor">#define BLE_GATTS_ATTR_TYPE_INC_DECL        0x03  </span>
<a name="l00071"></a><a class="code" href="group___b_l_e___g_a_t_t_s___a_t_t_r___t_y_p_e_s.html#ga102e704417b457854a05daa5fa06d7d6">00071</a> <span class="preprocessor">#define BLE_GATTS_ATTR_TYPE_CHAR_DECL       0x04  </span>
<a name="l00072"></a><a class="code" href="group___b_l_e___g_a_t_t_s___a_t_t_r___t_y_p_e_s.html#gac7e5c6d395c2a57918233dd8c7a9a699">00072</a> <span class="preprocessor">#define BLE_GATTS_ATTR_TYPE_CHAR_VAL        0x05  </span>
<a name="l00073"></a><a class="code" href="group___b_l_e___g_a_t_t_s___a_t_t_r___t_y_p_e_s.html#gac5f3e3213a49c7fe404a1c3f934de50c">00073</a> <span class="preprocessor">#define BLE_GATTS_ATTR_TYPE_DESC            0x06  </span>
<a name="l00074"></a><a class="code" href="group___b_l_e___g_a_t_t_s___a_t_t_r___t_y_p_e_s.html#gadbf23b44b2e2731d944ba3682427c316">00074</a> <span class="preprocessor">#define BLE_GATTS_ATTR_TYPE_OTHER           0x07  </span>
<a name="l00080"></a><a class="code" href="group___b_l_e___g_a_t_t_s___o_p_s.html#gaefcca583b8fedfba89e3e8864f5fb392">00080</a> <span class="preprocessor">#define BLE_GATTS_OP_INVALID                0x00  </span>
<a name="l00081"></a><a class="code" href="group___b_l_e___g_a_t_t_s___o_p_s.html#ga52cba338739e55ac2843c2ef92bef44b">00081</a> <span class="preprocessor">#define BLE_GATTS_OP_WRITE_REQ              0x01  </span>
<a name="l00082"></a><a class="code" href="group___b_l_e___g_a_t_t_s___o_p_s.html#gac567f652312a6f8bbb5e348f01ed3f77">00082</a> <span class="preprocessor">#define BLE_GATTS_OP_WRITE_CMD              0x02  </span>
<a name="l00083"></a><a class="code" href="group___b_l_e___g_a_t_t_s___o_p_s.html#ga0c61bfea52333d5d0b1f8ede31b3f8ee">00083</a> <span class="preprocessor">#define BLE_GATTS_OP_SIGN_WRITE_CMD         0x03  </span>
<a name="l00088"></a>00088 <span class="preprocessor">typedef struct</span>
<a name="l00089"></a>00089 <span class="preprocessor"></span>{
<a name="l00090"></a><a class="code" href="structble__gatts__attr__md__t.html#af0352a482ca2a1305ec5941bc4af0ec2">00090</a>   <a class="code" href="structble__gap__conn__sec__mode__t.html" title="GAP link requirements.">ble_gap_conn_sec_mode_t</a> <a class="code" href="structble__gatts__attr__md__t.html#af0352a482ca2a1305ec5941bc4af0ec2">read_perm</a>;       
<a name="l00091"></a><a class="code" href="structble__gatts__attr__md__t.html#a6060006e42afe1970aed0a8490f71445">00091</a>   <a class="code" href="structble__gap__conn__sec__mode__t.html" title="GAP link requirements.">ble_gap_conn_sec_mode_t</a> <a class="code" href="structble__gatts__attr__md__t.html#a6060006e42afe1970aed0a8490f71445">write_perm</a>;      
<a name="l00092"></a><a class="code" href="structble__gatts__attr__md__t.html#ac68fa2d9eb5f49771a80414d2c6bb690">00092</a>   uint8_t                 rd_defer   :1;   
<a name="l00093"></a><a class="code" href="structble__gatts__attr__md__t.html#ad44d77b2d08d2dde61c9ccbb22fa7432">00093</a>   uint8_t                 wr_defer   :1;   
<a name="l00094"></a><a class="code" href="structble__gatts__attr__md__t.html#a248864ad6fe6949aa81d376cdd7d07b4">00094</a>   uint8_t                 vlen       :1;   
<a name="l00095"></a><a class="code" href="structble__gatts__attr__md__t.html#a521fb388a2ee55ee23ac76810da33d9e">00095</a>   uint8_t                 persistent :1;   
<a name="l00096"></a>00096 } <a class="code" href="structble__gatts__attr__md__t.html" title="Attribute metadata.">ble_gatts_attr_md_t</a>;
<a name="l00097"></a>00097 
<a name="l00098"></a>00098 
<a name="l00100"></a>00100 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00101"></a>00101 {
<a name="l00102"></a><a class="code" href="structble__gatts__attr__t.html#a8af1eafb75d1d1e9c4cacf188fad299e">00102</a>   <a class="code" href="structble__uuid__t.html" title="Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs.">ble_uuid_t</a>*          <a class="code" href="structble__gatts__attr__t.html#a8af1eafb75d1d1e9c4cacf188fad299e">p_uuid</a>;          
<a name="l00103"></a><a class="code" href="structble__gatts__attr__t.html#a573caddb6f66206646fcf38fa7c1a211">00103</a>   <a class="code" href="structble__gatts__attr__md__t.html" title="Attribute metadata.">ble_gatts_attr_md_t</a>* <a class="code" href="structble__gatts__attr__t.html#a573caddb6f66206646fcf38fa7c1a211">p_attr_md</a>;       
<a name="l00104"></a><a class="code" href="structble__gatts__attr__t.html#a9e68f6d248f0c128406979df16f88255">00104</a>   uint16_t             <a class="code" href="structble__gatts__attr__t.html#a9e68f6d248f0c128406979df16f88255">init_len</a>;        
<a name="l00105"></a><a class="code" href="structble__gatts__attr__t.html#a44cd93c5a44c06d426920c36a3971eb1">00105</a>   uint16_t             <a class="code" href="structble__gatts__attr__t.html#a44cd93c5a44c06d426920c36a3971eb1">init_offs</a>;       
<a name="l00106"></a><a class="code" href="structble__gatts__attr__t.html#a1a6c02276292f164788906e8d5a316e5">00106</a>   uint16_t             <a class="code" href="structble__gatts__attr__t.html#a1a6c02276292f164788906e8d5a316e5">max_len</a>;         
<a name="l00107"></a><a class="code" href="structble__gatts__attr__t.html#ac439d398694461e592c0af528994705e">00107</a>   uint8_t*             <a class="code" href="structble__gatts__attr__t.html#ac439d398694461e592c0af528994705e">p_init_value</a>;    
<a name="l00108"></a>00108 } <a class="code" href="structble__gatts__attr__t.html" title="GATT Attribute.">ble_gatts_attr_t</a>;
<a name="l00109"></a>00109 
<a name="l00110"></a>00110 
<a name="l00112"></a>00112 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00113"></a>00113 {
<a name="l00114"></a><a class="code" href="structble__gatts__attr__context__t.html#a15bbf3231e4fa877f7c2b0fc2cea4671">00114</a>   <a class="code" href="structble__uuid__t.html" title="Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs.">ble_uuid_t</a>           <a class="code" href="structble__gatts__attr__context__t.html#a15bbf3231e4fa877f7c2b0fc2cea4671">svc_uuid</a>;        
<a name="l00115"></a><a class="code" href="structble__gatts__attr__context__t.html#af73d4487c4918f70344ce609fe23b38b">00115</a>   <a class="code" href="structble__uuid__t.html" title="Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs.">ble_uuid_t</a>           <a class="code" href="structble__gatts__attr__context__t.html#af73d4487c4918f70344ce609fe23b38b">char_uuid</a>;       
<a name="l00116"></a><a class="code" href="structble__gatts__attr__context__t.html#af296e28e58ce9c9cabbc757c4374dec5">00116</a>   <a class="code" href="structble__uuid__t.html" title="Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs.">ble_uuid_t</a>           <a class="code" href="structble__gatts__attr__context__t.html#af296e28e58ce9c9cabbc757c4374dec5">desc_uuid</a>;       
<a name="l00117"></a><a class="code" href="structble__gatts__attr__context__t.html#aeb63607238eddafd27762c8448c5bc88">00117</a>   uint16_t             <a class="code" href="structble__gatts__attr__context__t.html#aeb63607238eddafd27762c8448c5bc88">svc_handle</a>;      
<a name="l00118"></a><a class="code" href="structble__gatts__attr__context__t.html#a61c5d051b6f79d08236fae6cf7019e75">00118</a>   uint16_t             <a class="code" href="structble__gatts__attr__context__t.html#a61c5d051b6f79d08236fae6cf7019e75">value_handle</a>;    
<a name="l00119"></a><a class="code" href="structble__gatts__attr__context__t.html#a1d127017fb298b889f4ba24752d08b8e">00119</a>   uint8_t              <a class="code" href="structble__gatts__attr__context__t.html#a1d127017fb298b889f4ba24752d08b8e">type</a>;            
<a name="l00120"></a>00120 } <a class="code" href="structble__gatts__attr__context__t.html" title="GATT Attribute Context.">ble_gatts_attr_context_t</a>;
<a name="l00121"></a>00121 
<a name="l00122"></a>00122 
<a name="l00124"></a>00124 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00125"></a>00125 {
<a name="l00126"></a>00126   <span class="comment">/* Standard properties */</span>
<a name="l00127"></a><a class="code" href="structble__gatts__char__properties__t.html#a6e3870c14f08dc47009ee5358a0f06bb">00127</a>   uint8_t broadcast       :1; 
<a name="l00128"></a><a class="code" href="structble__gatts__char__properties__t.html#ad99a3f990d972bf0b87f25fd507eb599">00128</a>   uint8_t read            :1; 
<a name="l00129"></a><a class="code" href="structble__gatts__char__properties__t.html#a9f74c5baf3348f422cece8bb43d75386">00129</a>   uint8_t write_wo_resp   :1; 
<a name="l00130"></a><a class="code" href="structble__gatts__char__properties__t.html#a60e9c75aa693ad12f404344cffc12505">00130</a>   uint8_t write           :1; 
<a name="l00131"></a><a class="code" href="structble__gatts__char__properties__t.html#ab4ddab4f7ba8461e378ffa590bb15dd8">00131</a>   uint8_t notify          :1; 
<a name="l00132"></a><a class="code" href="structble__gatts__char__properties__t.html#a470560e997d7a639785b8b405de9df7d">00132</a>   uint8_t indicate        :1; 
<a name="l00133"></a><a class="code" href="structble__gatts__char__properties__t.html#a943f20d27422aa3019bbbd48a2116e90">00133</a>   uint8_t auth_signed_wr  :1; 
<a name="l00134"></a>00134   <span class="comment">/* Extended properties */</span>
<a name="l00135"></a><a class="code" href="structble__gatts__char__properties__t.html#a25fb97ae17c6c350340b1e10fd6bd9b0">00135</a>   uint8_t reliable_wr     :1; 
<a name="l00136"></a><a class="code" href="structble__gatts__char__properties__t.html#ac78c1259a0933e154d47c3a737f69496">00136</a>   uint8_t wr_aux          :1; 
<a name="l00137"></a>00137 } <a class="code" href="structble__gatts__char__properties__t.html" title="GATT Characteristic Properties.">ble_gatts_char_properties_t</a>;
<a name="l00138"></a>00138 
<a name="l00140"></a>00140 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00141"></a>00141 {
<a name="l00142"></a><a class="code" href="structble__gatts__char__pf__t.html#a7864fd50d470f893524181b4a59d9828">00142</a>   uint8_t          <a class="code" href="structble__gatts__char__pf__t.html#a7864fd50d470f893524181b4a59d9828">format</a>;      
<a name="l00143"></a><a class="code" href="structble__gatts__char__pf__t.html#aed7f350cc5718140389c3dfe42a686b4">00143</a>   int8_t           <a class="code" href="structble__gatts__char__pf__t.html#aed7f350cc5718140389c3dfe42a686b4">exponent</a>;    
<a name="l00144"></a><a class="code" href="structble__gatts__char__pf__t.html#a1e8ce93d382bc1a38b1d49f70acf0d24">00144</a>   uint16_t         <a class="code" href="structble__gatts__char__pf__t.html#a1e8ce93d382bc1a38b1d49f70acf0d24">unit</a>;        
<a name="l00145"></a><a class="code" href="structble__gatts__char__pf__t.html#aa1ae3a5a6c18293172edf891d5c33e58">00145</a>   uint8_t          <a class="code" href="structble__gatts__char__pf__t.html#aa1ae3a5a6c18293172edf891d5c33e58">name_space</a>;  
<a name="l00146"></a><a class="code" href="structble__gatts__char__pf__t.html#aa84f518194963d8c2c4a4f989ab30e04">00146</a>   uint16_t         <a class="code" href="structble__gatts__char__pf__t.html#aa84f518194963d8c2c4a4f989ab30e04">desc</a>;        
<a name="l00147"></a>00147 } <a class="code" href="structble__gatts__char__pf__t.html" title="GATT Characteristic Presentation Format.">ble_gatts_char_pf_t</a>;
<a name="l00148"></a>00148 
<a name="l00149"></a>00149 
<a name="l00151"></a>00151 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00152"></a>00152 {
<a name="l00153"></a><a class="code" href="structble__gatts__char__md__t.html#a5d81476b727bf4053879046f72049b48">00153</a>   <a class="code" href="structble__gatts__char__properties__t.html" title="GATT Characteristic Properties.">ble_gatts_char_properties_t</a> <a class="code" href="structble__gatts__char__md__t.html#a5d81476b727bf4053879046f72049b48">char_properties</a>;      
<a name="l00154"></a><a class="code" href="structble__gatts__char__md__t.html#a48ddd998bdda2b2b93e305ba46137d41">00154</a>   uint8_t*                <a class="code" href="structble__gatts__char__md__t.html#a48ddd998bdda2b2b93e305ba46137d41">p_char_user_desc</a>;         
<a name="l00155"></a><a class="code" href="structble__gatts__char__md__t.html#a4803a75bb9b2d86d529c423821fb165f">00155</a>   uint16_t                <a class="code" href="structble__gatts__char__md__t.html#a4803a75bb9b2d86d529c423821fb165f">char_user_desc_max_size</a>;  
<a name="l00156"></a><a class="code" href="structble__gatts__char__md__t.html#ad1fe5fdc8f07028e11054f2288c7fc14">00156</a>   <a class="code" href="structble__gatts__char__pf__t.html" title="GATT Characteristic Presentation Format.">ble_gatts_char_pf_t</a>*    <a class="code" href="structble__gatts__char__md__t.html#ad1fe5fdc8f07028e11054f2288c7fc14">p_char_pf</a>;                
<a name="l00157"></a><a class="code" href="structble__gatts__char__md__t.html#a2bce0c863bf96476ad1629c676042d34">00157</a>   <a class="code" href="structble__gatts__attr__md__t.html" title="Attribute metadata.">ble_gatts_attr_md_t</a>*    <a class="code" href="structble__gatts__char__md__t.html#a2bce0c863bf96476ad1629c676042d34">p_user_desc_md</a>;           
<a name="l00158"></a><a class="code" href="structble__gatts__char__md__t.html#a5d654340f27d7c8f113a45beebb50312">00158</a>   <a class="code" href="structble__gatts__attr__md__t.html" title="Attribute metadata.">ble_gatts_attr_md_t</a>*    <a class="code" href="structble__gatts__char__md__t.html#a5d654340f27d7c8f113a45beebb50312">p_cccd_md</a>;                
<a name="l00159"></a><a class="code" href="structble__gatts__char__md__t.html#a642bc361c2131bdf054da18ce4e9a3e7">00159</a>   <a class="code" href="structble__gatts__attr__md__t.html" title="Attribute metadata.">ble_gatts_attr_md_t</a>*    <a class="code" href="structble__gatts__char__md__t.html#a642bc361c2131bdf054da18ce4e9a3e7">p_sccd_md</a>;                
<a name="l00160"></a>00160 } <a class="code" href="structble__gatts__char__md__t.html" title="GATT Characteristic Medatadata.">ble_gatts_char_md_t</a>;
<a name="l00161"></a>00161 
<a name="l00162"></a>00162 
<a name="l00164"></a>00164 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00165"></a>00165 {
<a name="l00166"></a><a class="code" href="structble__gatts__char__handles__t.html#a61c5d051b6f79d08236fae6cf7019e75">00166</a>   uint16_t          <a class="code" href="structble__gatts__char__handles__t.html#a61c5d051b6f79d08236fae6cf7019e75">value_handle</a>;       
<a name="l00167"></a><a class="code" href="structble__gatts__char__handles__t.html#afb44cd33ee915e0ca389a4dbd4f3a869">00167</a>   uint16_t          <a class="code" href="structble__gatts__char__handles__t.html#afb44cd33ee915e0ca389a4dbd4f3a869">user_desc_handle</a>;   
<a name="l00168"></a><a class="code" href="structble__gatts__char__handles__t.html#a2c7796d4eb58c25a1a724bcd9d5bf183">00168</a>   uint16_t          <a class="code" href="structble__gatts__char__handles__t.html#a2c7796d4eb58c25a1a724bcd9d5bf183">cccd_handle</a>;        
<a name="l00169"></a><a class="code" href="structble__gatts__char__handles__t.html#af740ce915e18f414bf6ab18e8d5f1129">00169</a>   uint16_t          <a class="code" href="structble__gatts__char__handles__t.html#af740ce915e18f414bf6ab18e8d5f1129">sccd_handle</a>;        
<a name="l00170"></a>00170 } <a class="code" href="structble__gatts__char__handles__t.html" title="GATT Characteristic Definition Handles.">ble_gatts_char_handles_t</a>;
<a name="l00171"></a>00171 
<a name="l00172"></a>00172 
<a name="l00174"></a>00174 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00175"></a>00175 {
<a name="l00176"></a><a class="code" href="structble__gatts__hvx__params__t.html#af242d6e3b6108ea75e1eb236e94c8240">00176</a>   uint16_t          <a class="code" href="structble__gatts__hvx__params__t.html#af242d6e3b6108ea75e1eb236e94c8240">handle</a>;             
<a name="l00177"></a><a class="code" href="structble__gatts__hvx__params__t.html#a470560e997d7a639785b8b405de9df7d">00177</a>   uint8_t           <a class="code" href="structble__gatts__hvx__params__t.html#a470560e997d7a639785b8b405de9df7d">indicate</a>;           
<a name="l00178"></a><a class="code" href="structble__gatts__hvx__params__t.html#ac681806181c80437cfab37335f62ff39">00178</a>   uint16_t          <a class="code" href="structble__gatts__hvx__params__t.html#ac681806181c80437cfab37335f62ff39">offset</a>;             
<a name="l00179"></a><a class="code" href="structble__gatts__hvx__params__t.html#a05aad1ca0c545a05986893ca0e1ed34f">00179</a>   uint16_t*         <a class="code" href="structble__gatts__hvx__params__t.html#a05aad1ca0c545a05986893ca0e1ed34f">p_len</a>;              
<a name="l00180"></a><a class="code" href="structble__gatts__hvx__params__t.html#a8304c4af5da6e830b86d7199dc9a22e6">00180</a>   uint8_t*          <a class="code" href="structble__gatts__hvx__params__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a>;             
<a name="l00181"></a>00181 } <a class="code" href="structble__gatts__hvx__params__t.html" title="GATT HVx parameters.">ble_gatts_hvx_params_t</a>;
<a name="l00182"></a>00182 
<a name="l00183"></a>00183 
<a name="l00185"></a>00185 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00186"></a>00186 {
<a name="l00187"></a><a class="code" href="structble__gatts__rw__op__reply__params__t.html#af242d6e3b6108ea75e1eb236e94c8240">00187</a>   uint16_t          <a class="code" href="structble__gatts__rw__op__reply__params__t.html#af242d6e3b6108ea75e1eb236e94c8240">handle</a>;             
<a name="l00188"></a><a class="code" href="structble__gatts__rw__op__reply__params__t.html#ade818037fd6c985038ff29656089758d">00188</a>   uint8_t           <a class="code" href="structble__gatts__rw__op__reply__params__t.html#ade818037fd6c985038ff29656089758d">status</a>;             
<a name="l00189"></a><a class="code" href="structble__gatts__rw__op__reply__params__t.html#ac681806181c80437cfab37335f62ff39">00189</a>   uint16_t          <a class="code" href="structble__gatts__rw__op__reply__params__t.html#ac681806181c80437cfab37335f62ff39">offset</a>;             
<a name="l00190"></a><a class="code" href="structble__gatts__rw__op__reply__params__t.html#a8aed22e2c7b283705ec82e0120515618">00190</a>   uint16_t          <a class="code" href="structble__gatts__rw__op__reply__params__t.html#a8aed22e2c7b283705ec82e0120515618">len</a>;                
<a name="l00191"></a><a class="code" href="structble__gatts__rw__op__reply__params__t.html#a8304c4af5da6e830b86d7199dc9a22e6">00191</a>   uint8_t*          <a class="code" href="structble__gatts__rw__op__reply__params__t.html#a8304c4af5da6e830b86d7199dc9a22e6">p_data</a>;             
<a name="l00192"></a>00192 } <a class="code" href="structble__gatts__rw__op__reply__params__t.html" title="GATT Deferred/Persistent reply parameters.">ble_gatts_rw_op_reply_params_t</a>;
<a name="l00193"></a>00193 
<a name="l00194"></a>00194 
<a name="l00198"></a>00198 <span class="keyword">enum</span>
<a name="l00199"></a>00199 {
<a name="l00200"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaafb47d2bdc544975bfef8f8ee34967077">00200</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaafb47d2bdc544975bfef8f8ee34967077">BLE_GATTS_EVT_MTU_UPDATE</a>  = BLE_GATTS_EVT_BASE, 
<a name="l00201"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaaa68b7764f5264ff092d2ad17851355ed">00201</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaaa68b7764f5264ff092d2ad17851355ed">BLE_GATTS_EVT_WRITE</a>,                            
<a name="l00202"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaa101468a7ee24062a93a4fbdb10773a66">00202</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaa101468a7ee24062a93a4fbdb10773a66">BLE_GATTS_EVT_READ_OP_REQUEST</a>,                  
<a name="l00203"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaa76843cf527e6056588cee336200c960c">00203</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaa76843cf527e6056588cee336200c960c">BLE_GATTS_EVT_WRITE_OP_REQUEST</a>,                 
<a name="l00204"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaae3776204f11a583e105aed0e477601da">00204</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaae3776204f11a583e105aed0e477601da">BLE_GATTS_EVT_SYS_ATTR_MISSING</a>,                 
<a name="l00205"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaaf6a065c5c7e0682989ddd6cc557e0ffa">00205</a>   <a class="code" href="group___b_l_e___g_a_t_t_s.html#gga80155586fa275b28773c9b203f52cabaaf6a065c5c7e0682989ddd6cc557e0ffa">BLE_GATTS_EVT_HVC</a>                               
<a name="l00206"></a>00206 };
<a name="l00207"></a>00207 
<a name="l00208"></a>00208 
<a name="l00210"></a>00210 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00211"></a>00211 {
<a name="l00212"></a><a class="code" href="structble__gatts__evt__mtu__update__t.html#a8c9b5f514041e4085c6a8cd8756b776f">00212</a>   uint16_t          <a class="code" href="structble__gatts__evt__mtu__update__t.html#a8c9b5f514041e4085c6a8cd8756b776f">att_mtu</a>;                      
<a name="l00213"></a>00213 } <a class="code" href="structble__gatts__evt__mtu__update__t.html" title="Event structure for BLE_GATTS_EVT_MTU_UPDATE.">ble_gatts_evt_mtu_update_t</a>;
<a name="l00214"></a>00214 
<a name="l00215"></a>00215 
<a name="l00217"></a>00217 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00218"></a>00218 {
<a name="l00219"></a><a class="code" href="structble__gatts__evt__write__t.html#af242d6e3b6108ea75e1eb236e94c8240">00219</a>   uint16_t          <a class="code" href="structble__gatts__evt__write__t.html#af242d6e3b6108ea75e1eb236e94c8240">handle</a>;                       
<a name="l00220"></a><a class="code" href="structble__gatts__evt__write__t.html#a3fe410a28ee11b520d9dd574d2139f4b">00220</a>   uint8_t           <a class="code" href="structble__gatts__evt__write__t.html#a3fe410a28ee11b520d9dd574d2139f4b">op</a>;                           
<a name="l00221"></a><a class="code" href="structble__gatts__evt__write__t.html#aadff4c32a75b3ea0afb3202c5c2b3d65">00221</a>   <a class="code" href="structble__gatts__attr__context__t.html" title="GATT Attribute Context.">ble_gatts_attr_context_t</a> <a class="code" href="structble__gatts__evt__write__t.html#aadff4c32a75b3ea0afb3202c5c2b3d65">context</a>;               
<a name="l00222"></a><a class="code" href="structble__gatts__evt__write__t.html#ac681806181c80437cfab37335f62ff39">00222</a>   uint16_t          <a class="code" href="structble__gatts__evt__write__t.html#ac681806181c80437cfab37335f62ff39">offset</a>;                       
<a name="l00223"></a><a class="code" href="structble__gatts__evt__write__t.html#a8aed22e2c7b283705ec82e0120515618">00223</a>   uint16_t          <a class="code" href="structble__gatts__evt__write__t.html#a8aed22e2c7b283705ec82e0120515618">len</a>;                          
<a name="l00224"></a>00224   <span class="comment">/*@todo make this buffer dynamic in size */</span>
<a name="l00225"></a><a class="code" href="structble__gatts__evt__write__t.html#aa86e1085c6a16f60258f29c9d5fc2144">00225</a>   uint8_t           data[1];                      
<a name="l00226"></a>00226 } <a class="code" href="structble__gatts__evt__write__t.html" title="Event structure for BLE_GATTS_EVT_WRITE.">ble_gatts_evt_write_t</a>;
<a name="l00227"></a>00227 
<a name="l00229"></a>00229 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00230"></a>00230 {
<a name="l00231"></a>00231   <span class="comment">/*@todo make this buffer dynamic in size */</span>
<a name="l00232"></a>00232   <span class="keyword">struct </span>read_attr
<a name="l00233"></a>00233   {
<a name="l00234"></a><a class="code" href="structble__gatts__evt__read__op__t_1_1read__attr.html#af242d6e3b6108ea75e1eb236e94c8240">00234</a>     uint16_t          <a class="code" href="structble__gatts__evt__read__op__t_1_1read__attr.html#af242d6e3b6108ea75e1eb236e94c8240">handle</a>;                       
<a name="l00235"></a><a class="code" href="structble__gatts__evt__read__op__t_1_1read__attr.html#a3fe410a28ee11b520d9dd574d2139f4b">00235</a>     uint8_t           <a class="code" href="structble__gatts__evt__read__op__t_1_1read__attr.html#a3fe410a28ee11b520d9dd574d2139f4b">op</a>;                           
<a name="l00236"></a><a class="code" href="structble__gatts__evt__read__op__t_1_1read__attr.html#ac681806181c80437cfab37335f62ff39">00236</a>     uint16_t          <a class="code" href="structble__gatts__evt__read__op__t_1_1read__attr.html#ac681806181c80437cfab37335f62ff39">offset</a>;                       
<a name="l00237"></a>00237   } attrs[16];                                      
<a name="l00238"></a>00238 } <a class="code" href="structble__gatts__evt__read__op__t.html" title="Event structure for BLE_GATTS_EVT_READ_OP_REQUEST.">ble_gatts_evt_read_op_t</a>;
<a name="l00239"></a>00239 
<a name="l00240"></a>00240 
<a name="l00242"></a><a class="code" href="group___b_l_e___g_a_t_t_s.html#ga6830ed97ca69e65de58dc262c36de5c7">00242</a> <span class="keyword">typedef</span> <a class="code" href="structble__gatts__evt__read__op__t.html" title="Event structure for BLE_GATTS_EVT_READ_OP_REQUEST.">ble_gatts_evt_read_op_t</a> <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga6830ed97ca69e65de58dc262c36de5c7" title="Event structure for BLE_GATTS_EVT_WRITE_OP_REQUEST.">ble_gatts_evt_write_op_t</a>;
<a name="l00243"></a>00243 
<a name="l00245"></a>00245 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00246"></a>00246 {
<a name="l00247"></a>00247   uint8_t hint;
<a name="l00248"></a>00248 } <a class="code" href="structble__gatts__evt__sys__attr__missing__t.html" title="Event structure for BLE_GATTS_EVT_SYS_ATTR_MISSING.">ble_gatts_evt_sys_attr_missing_t</a>;
<a name="l00249"></a>00249 
<a name="l00250"></a>00250 
<a name="l00252"></a>00252 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00253"></a>00253 {
<a name="l00254"></a><a class="code" href="structble__gatts__evt__hvc__t.html#af242d6e3b6108ea75e1eb236e94c8240">00254</a>   uint16_t          <a class="code" href="structble__gatts__evt__hvc__t.html#af242d6e3b6108ea75e1eb236e94c8240">handle</a>;                       
<a name="l00255"></a>00255 } <a class="code" href="structble__gatts__evt__hvc__t.html" title="Event structure for BLE_GATTS_EVT_HVC.">ble_gatts_evt_hvc_t</a>;
<a name="l00256"></a>00256 
<a name="l00257"></a>00257 
<a name="l00259"></a>00259 <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00260"></a>00260 {
<a name="l00261"></a><a class="code" href="structble__gatts__evt__t.html#a0d5ffe38d68e48d81e61fc6a4999ae68">00261</a>   uint16_t <a class="code" href="structble__gatts__evt__t.html#a0d5ffe38d68e48d81e61fc6a4999ae68">conn_handle</a>;                                       
<a name="l00262"></a>00262   <span class="keyword">union</span>
<a name="l00263"></a>00263   {
<a name="l00264"></a><a class="code" href="structble__gatts__evt__t.html#a058d896d30c59967efcadc4f12cd8f11">00264</a>     <a class="code" href="structble__gatts__evt__mtu__update__t.html" title="Event structure for BLE_GATTS_EVT_MTU_UPDATE.">ble_gatts_evt_mtu_update_t</a>       <a class="code" href="structble__gatts__evt__t.html#a058d896d30c59967efcadc4f12cd8f11">mtu_update</a>;              
<a name="l00265"></a><a class="code" href="structble__gatts__evt__t.html#a682c515271ef8a1b93b7643a1023e8b8">00265</a>     <a class="code" href="structble__gatts__evt__write__t.html" title="Event structure for BLE_GATTS_EVT_WRITE.">ble_gatts_evt_write_t</a>            <a class="code" href="structble__gatts__evt__t.html#a682c515271ef8a1b93b7643a1023e8b8">write</a>;                   
<a name="l00266"></a><a class="code" href="structble__gatts__evt__t.html#a788ec78d20bd6e715726ffbcbfef891f">00266</a>     <a class="code" href="structble__gatts__evt__read__op__t.html" title="Event structure for BLE_GATTS_EVT_READ_OP_REQUEST.">ble_gatts_evt_read_op_t</a>          <a class="code" href="structble__gatts__evt__t.html#a788ec78d20bd6e715726ffbcbfef891f">read_op</a>;                 
<a name="l00267"></a><a class="code" href="structble__gatts__evt__t.html#a286229f23501f215afcca73f6caaac05">00267</a>     <a class="code" href="structble__gatts__evt__read__op__t.html" title="Event structure for BLE_GATTS_EVT_READ_OP_REQUEST.">ble_gatts_evt_write_op_t</a>         <a class="code" href="structble__gatts__evt__t.html#a286229f23501f215afcca73f6caaac05">write_op</a>;                
<a name="l00268"></a><a class="code" href="structble__gatts__evt__t.html#a85a20551c894c5cd398e3cb1d407f319">00268</a>     <a class="code" href="structble__gatts__evt__sys__attr__missing__t.html" title="Event structure for BLE_GATTS_EVT_SYS_ATTR_MISSING.">ble_gatts_evt_sys_attr_missing_t</a> <a class="code" href="structble__gatts__evt__t.html#a85a20551c894c5cd398e3cb1d407f319">sys_attr_missing</a>;        
<a name="l00269"></a><a class="code" href="structble__gatts__evt__t.html#ab2a040df9dc3a000d4f087d602cf4d20">00269</a>     <a class="code" href="structble__gatts__evt__hvc__t.html" title="Event structure for BLE_GATTS_EVT_HVC.">ble_gatts_evt_hvc_t</a>              <a class="code" href="structble__gatts__evt__t.html#ab2a040df9dc3a000d4f087d602cf4d20">hvc</a>;                     
<a name="l00270"></a>00270   } params;
<a name="l00271"></a>00271 } <a class="code" href="structble__gatts__evt__t.html" title="GATT Server event callback event structure.">ble_gatts_evt_t</a>;
<a name="l00272"></a>00272 
<a name="l00273"></a>00273 
<a name="l00282"></a>00282 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaf1fd96039a3e8897746c941ba27c0790">SVC_BLE_GATTS_DB_LOAD</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga49a333294ed30895dfdc8b699b41e07c" title="Load a preconfigured GATT attribute database.">ble_gatts_db_load</a>(uint32_t len, uint8_t const* const p_data);
<a name="l00283"></a>00283 
<a name="l00284"></a>00284 
<a name="l00301"></a>00301 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea78cd57d15505ff6309b45a9ac6fdd055">SVC_BLE_GATTS_SERVICE_ADD</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga5e8270fe6dfa01e446be17b48fe81e2a" title="Add a service declaration to the local server database.">ble_gatts_service_add</a>(uint8_t type, <a class="code" href="structble__uuid__t.html" title="Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs.">ble_uuid_t</a> const*const p_uuid, uint16_t *const p_handle);
<a name="l00302"></a>00302 
<a name="l00303"></a>00303 
<a name="l00322"></a>00322 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea4dc7cf81a0c1475646ced4d7b31c51eb">SVC_BLE_GATTS_INCLUDE_ADD</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga553f8deef66ea239ced4fe7efc82106b" title="Add an include declaration to the local server database.">ble_gatts_include_add</a>(uint16_t service_handle, uint16_t inc_svc_handle, uint16_t *const p_include_handle);
<a name="l00323"></a>00323 
<a name="l00324"></a>00324 
<a name="l00344"></a>00344 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea8be599bb11323fbd1fd59612b61dded8">SVC_BLE_GATTS_CHARACTERISTIC_ADD</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#gae4a1d9149f4531d66d06bf289886106d" title="Add a characteristic declaration, a characteristic value declaration and optional characteristic desc...">ble_gatts_characteristic_add</a>(uint16_t service_handle, <a class="code" href="structble__gatts__char__md__t.html" title="GATT Characteristic Medatadata.">ble_gatts_char_md_t</a> const*const p_char_md, <a class="code" href="structble__gatts__attr__t.html" title="GATT Attribute.">ble_gatts_attr_t</a> const*const p_attr_char_value, <a class="code" href="structble__gatts__char__handles__t.html" title="GATT Characteristic Definition Handles.">ble_gatts_char_handles_t</a> *const p_handles);
<a name="l00345"></a>00345 
<a name="l00346"></a>00346 
<a name="l00364"></a>00364 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea1785845a5e8428082c576883aa872cd9">SVC_BLE_GATTS_DESCRIPTOR_ADD</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga4bb7f2d804e7416d47ba64f434ac1243" title="Add a descriptor to the local server database.">ble_gatts_descriptor_add</a>(uint16_t char_handle, <a class="code" href="structble__gatts__attr__t.html" title="GATT Attribute.">ble_gatts_attr_t</a> const * const p_attr, uint16_t* const p_handle);
<a name="l00365"></a>00365 
<a name="l00376"></a>00376 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea42be96066fca377cf4ad929ec4125a58">SVC_BLE_GATTS_MD_SET</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#gafa770e6b8477caf6d46296fe46dd949e" title="Set the metadata for a given attribute.">ble_gatts_md_set</a>(uint16_t handle, <a class="code" href="structble__gatts__attr__md__t.html" title="Attribute metadata.">ble_gatts_attr_md_t</a> const * const p_attr_md);
<a name="l00377"></a>00377 
<a name="l00387"></a>00387 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaba69cc87d4420099fe195c2f9bf156e8">SVC_BLE_GATTS_MD_GET</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#gad08012420fc5b8b7dbfd2ced37ab8e44" title="Get the metadata for a given attribute.">ble_gatts_md_get</a>(uint16_t handle, <a class="code" href="structble__gatts__attr__md__t.html" title="Attribute metadata.">ble_gatts_attr_md_t</a>* const p_attr_md);
<a name="l00388"></a>00388 
<a name="l00406"></a>00406 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea5ccb34a3ff55e799cc1706af14be204e">SVC_BLE_GATTS_VALUE_SET</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga4267755972361d620ae47d791feec4a5" title="Set the value of a given attribute.">ble_gatts_value_set</a>(uint16_t handle, uint16_t offset, uint16_t* const p_len, uint8_t const * const p_value);
<a name="l00407"></a>00407 
<a name="l00419"></a>00419 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea70c9793acebfb7089f8df93a592fbf5d">SVC_BLE_GATTS_VALUE_GET</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga9112e57e30d9d78b9c5682c55f1b502e" title="Get the value of a given attribute.">ble_gatts_value_get</a>(uint16_t handle, uint16_t offset, uint16_t *const p_len, uint8_t* const p_data);
<a name="l00420"></a>00420 
<a name="l00443"></a>00443 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea0f836dda706fe9ef94c5501ffa441d77">SVC_BLE_GATTS_HVX</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#gaab41731020dbcc6b9b561d8129689308" title="Notify or Indicate an attribute value.">ble_gatts_hvx</a>(uint16_t conn_handle, <a class="code" href="structble__gatts__hvx__params__t.html" title="GATT HVx parameters.">ble_gatts_hvx_params_t</a> const*const p_hvx_params);
<a name="l00444"></a>00444 
<a name="l00445"></a>00445 
<a name="l00453"></a>00453 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceab9669d199e45661740f25ac9711c4608">SVC_BLE_GATTS_RW_OP_REPLY</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga6a775b4839508c4ea02d38589980e9f4" title="Respond to a request for a deferred/persistent attribute valeu.">ble_gatts_rw_op_reply</a>(uint16_t conn_handle, <a class="code" href="structble__gatts__rw__op__reply__params__t.html" title="GATT Deferred/Persistent reply parameters.">ble_gatts_rw_op_reply_params_t</a> const*const p_rw_op_reply_params);
<a name="l00454"></a>00454 
<a name="l00455"></a>00455 
<a name="l00475"></a>00475 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fceaafad37ccc8a8e65c9d138c9444e0496e">SVC_BLE_GATTS_SYS_ATTR_SET</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#ga65ae169e49530eb2fa4bf73053060a13" title="Update persistent system attribute info.">ble_gatts_sys_attr_set</a>(uint16_t conn_handle, uint8_t const*const p_sys_attr_data, uint16_t len); 
<a name="l00476"></a>00476 
<a name="l00477"></a>00477  
<a name="l00495"></a>00495 uint32_t SVCALL(<a class="code" href="group___b_l_e___g_a_t_t_s.html#ggaaf105ae5beaca1dee30ae54530691fcea489e505d006457b2a56f8777b5a03d31">SVC_BLE_GATTS_SYS_ATTR_GET</a>) <a class="code" href="group___b_l_e___g_a_t_t_s.html#gaef948f6aafa9e8a728a948bec76e8208" title="Retrieve persistent system attribute info from softdevice.">ble_gatts_sys_attr_get</a>(uint16_t conn_handle, uint8_t * const p_sys_attr_data, uint16_t* const p_len); 
<a name="l00496"></a>00496 
<a name="l00497"></a>00497 
<a name="l00498"></a>00498 <span class="preprocessor">#endif // BLE_GATTS_H__</span>
<a name="l00499"></a>00499 <span class="preprocessor"></span>
</pre></div></div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>ble_gatts.h</b>      </li>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>


    <li class="footer">
      Copyright &copy 2006-2011 <a href="http://www.nordicsemi.no" style="text-decoration:none">Nordic Semiconductor</a>.
      All Rights Reserved.
      <a href="disclaimer.html">Disclaimer</a>
    </li>
   </ul>
 </div>


</body>
</html>
